This invention relates to video game controllers and in particular to the selective reconfiguration or reprogramming of video game controllers by the user prior to or while playing a video game.
Personal computers are widely used by those of all ages in order to interact with a variety of video game programs comprising video game and simulation programs. The video game program is controlled by control devices such as joysticks, steering wheels and the like, which are connected to industrially standardized game ports within the personal computer. Compatibility of the video game controller with the standardized game port is essential to acceptance by the mass market of users.
The standard game port is limited to four discrete inputs and four analog inputs, and the number of game boards which can be plugged into the personal computer is also limited. Thus, the number of video game controllers which can be supported by the game port, and the number of functions which can be initiated by such a video game controller is somewhat restricted.
In an attempt to alleviate these limitations, manufacturers have implemented commands which are executable via keycodes which are output in response to the selection of specific keys on a keyboard connected to a personal computer. However, the keyboard does not present a particularly realistic means of entry or control. U.S. Pat. No. 4,852,031 to Brasington discloses such a video game controller which interfaces directly to the keyboard port of the personal computer in order to emulate an aircraft cockpit control panel. By outputting certain keycodes in response to the pressing of a switch by the user, this device allows the user to control the video game program running on the computer in a more user-friendly manner than by using a standard computer keyboard to output those same keycodes.
Unfortunately, different video games often require the input of different keycodes to accomplish certain functions in the game. For example, a car chase game by one manufacturer might require the user to input the character "a" to cause the gears to shift, while a similar but not identical car chase game by another manufacturer might require the character "b" to perform that function. There is no uniformity or set of standards employed by video game developers that can be adhered to in order to ensure that a controller may operate in the same manner across different games. In addition, different types of games have different types of functions (e.g. a car chase game is inherently different from a shooting game or a space game), and thus require different keycode functionality.
Therefore, it would be advantageous for the video game controller to be able to interface to different video game programs having different keycode requirements. Also, since each video game program can potentially require a completely different set of keycodes it would be advantageous to provide a means for reconfiguring and subsequently selecting complete sets of keycode assignments which are intended for use with one or more specific video game programs, users, or personal computers.
Attempts have been made in the prior art to allow the user to reconfigure the keycodes transmitted by a given button or switch to the PC running a video game. For example, in U.S. Pat. No. 5,551,701 to Bouton et al., the user must first reconfigure the keycode assignments by utilizing a reconfiguration program running in the personal computer, and then download the reconfigured keycode assignments to the video game controller.
It would be advantageous, however, for the video game controller to be directly reconfigurable without having to first reprogram a program running on the PC and then downloading the entire file to the controller; that is, to be reconfigurable solely within the video game controller without the need for additional reconfiguration intelligence in the personal computer. This would alleviate the need for initial reconfiguration of keycode assignments in the personal computer followed by the subsequent download of keycode assignments back to the video game controller. In addition, notwithstanding the desirability of allowing the user to reprogram the keycode assignments in the video game controller directly from the keyboard, it would nonetheless be desirable to allow the user to view, in real time, the dynamically changing keycode assignments to ensure that the changed keycodes have been reprogrammed correctly.
Another problem of the prior art video game controllers is the execution delay of special functions specified by a sequence of keycodes. That is, when the user specifies that a video game controller button should output a series of sequential keycodes (e.g. a,b,c), the delay time between keycodes is fixed. While the prior art controllers allow the user to modify the keycode delay by changing a manual switch setting, this delay must remain constant for each sequence and is not an exact setting. The user can only turn a dial or move a slide switch to change the overall delay, but cannot set different delays between sequential keycodes, or have different delays from sequence to sequence. Moreover, the user has no way of finely tuning the delay to match a given requirement for game play. Further exacerbating the situation is the fact that different computers have different microprocessor speeds, thus requiring the user to fine tune the execution delay accordingly.
Therefore, it would be advantageous if the video game controller would permit the user to insert reconfigurable delays between one or more successive keycodes in order to customize the speed of executing the keycodes according to the particular personal computer.
Recently, video game controllers have been provided with a force feedback mechanism that accepts codes from the video game under execution and causes the controller or portions thereof to shake, rattle, vibrate, oscillate or otherwise move in order to provide the user with a tactile realism attributable to the game being played. For example, a video game that provides the visual image of a gravel road might send commands to a steering wheel controller to cause it to vibrate, thus helping the user to experience the gravel road by tactile feedback in addition of the visual image (and likely audio sounds of crunching gravel). An example of this technology is currently marketed by IMMERSION CORP. This force feedback technology allows the user to program a "force feedback profile" that is edited with special software running on the PC, and then downloaded to a memory in the video game controller. While the game is played, a command sent from the video game program will operate in conjunction with the force feedback profile resident in the video game controller to produce these custom force feedback effects. Again, it would be advantageous to allow the user to program such force feedback parameters directly into the video controller without requiring the PC to download the codes.